package com.deco.back.config;

import com.deco.back.tags.FileUploaderDirective;
import com.deco.back.tags.MenusDirective;
import com.deco.back.tags.ProfileDirective;
import com.deco.back.tags.QuickNavDirective;
import freemarker.template.Configuration;
import freemarker.template.TemplateModelException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
@Component
public class FreemarkerConfig {
    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/
    @Autowired
    private Configuration configuration;

    @Autowired
    private MenusDirective menusDirective;

    @Autowired
    private ProfileDirective profileDirective;

    @Autowired
    private QuickNavDirective navDirective;

    @Autowired
    private FileUploaderDirective fileUploaderDerective;

    @PostConstruct
    public void setSharedVariable() throws TemplateModelException {
        configuration.setSharedVariable("menus_tag", menusDirective);
        configuration.setSharedVariable("profile_tag", profileDirective);
        configuration.setSharedVariable("con_nav_tag", navDirective);
        configuration.setSharedVariable("filer_tag", fileUploaderDerective);
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
